連兩天基礎語法的知識後,今天來看比較生硬的理論,搭配著學習,才不會太過無趣。
function greeting(){
var hello = "hello"
}
console.log(hello)//hello is not defined
//hello只在函式被呼叫時才能使用
let isPeople= true
function greeting(){
if (isPeople){
var firstname = "Stella"
let surname = "Ko"
const fullname = "Stella Ko"
}
console.log(firstname)//"Stella"
console.log(surname)//surname is not defined
console.log(fullname)//fullname is not defined
}
//因let跟const屬區塊範疇,所以在大括號外,無法取得
//var屬函式範疇故可取得
greeting()
console.log(firstname)//firstname is not defined
console.log(surname)//surname is not defined
console.log(fullname)//fullname is not defined
//函式外連var也無法取得
JavaScript預設行為:函式在範疇內找不到變數時,會向外部環境尋找,語彙環境決定該往哪去尋找。
當執行環境往外部環境尋找仍無所獲時,就會不斷往更外層的語彙環境尋找,直到找到變數或找到全域環境為止,這一連串的查找過程就是作用域鍊。
執行環境決定程式碼被執行的順序,語彙環境決定JavaScript在不同範疇間查找變數的方式跟順序
常常讀這種生硬又充滿一堆專有名詞的理論都會讀到出神,總是需要來回讀個三四次,才覺得有輸入一點,但不要求自己背起來,就當故事讀,不然腦袋會爆炸,來日方長,多碰幾次,總是會跟他成為好朋友的。
努力看完天書後,來點輕鬆的吧!分享我兒子的童言童語,調劑身心一下
2023/03/13
我正在剪指甲⋯
咖:媽媽,我什麼時候可以練習自己剪指甲?
我:現在就可以啊!
咖:不要
我:為什麼?
咖:我怕剪到手
我:多練習就不會啊!我們也會在旁邊幫你看啊!
他想了想⋯
咖:媽媽,你可以留幾隻不要剪,讓我幫你剪嗎?
(大驚)